package work.linruchang.util.bean;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 身份证正反面信息
 *
 * @author LinRuChang
 * @version 1.0
 * @date 2022/03/29
 * @since 1.8
 **/
@Data
@Builder
@Accessors(chain=true)
@NoArgsConstructor
@AllArgsConstructor
public class IDCardInfo implements Serializable {

    private static final long serialVersionUID = -7803640590987489927L;

    /**
     * 姓名
     */
    @JSONField(alternateNames={"Name"})
    String name;

    /**
     * 性别
     */
    @JSONField(alternateNames={"Sex"})
    String gender;

    /**
     * 民族
     */
    @JSONField(alternateNames={"Nation"})
    String nation;

    /**
     * 出生日期
     */
    @JSONField(alternateNames={"Birth"}, format = "yyyy/M/d")
    Date birthday;

    /**
     * 住址
     */
    @JSONField(alternateNames={"Address"})
    String address;

    /**
     * 证件号
     */
    @JSONField(alternateNames={"IdNum"})
    String idNum;


    //=================身份证背面=============================

    /**
     * 发证机关
     */
    @JSONField(alternateNames={"Authority"})
    String licenseIssuingAgencies;

    /**
     * 证件有效期限
     */
    @JSONField(alternateNames={"ValidDate"})
    String certificateValidityPeriod;

    /**
     * 证件有效期限起始日期
     * 解析{cn.eshore.common.utils.bean.IDCardInfo#certificateValidityPeriod}的结果
     */
    Date certificateValidityStartDate;

    /**
     * 证件有效期限结束日期
     * 解析{cn.eshore.common.utils.bean.IDCardInfo#certificateValidityPeriod}的结果
     */
    Date certificateValidityEndDate;

}
